package bytezero.thread;

/**
 * 多线程的创建，方式一：继承于Thread类
 * 1.创建一个继承于Thread类的子类
 * 2.重写Thread类的run()方法 -->将此线程执行的操作声明在tun（）中
 * 3.创建Thread类的子类对象
 * 4.通过此对象调用start()
 *
 * 例子：遍历100以内的所有偶数
 * @author Bytezero1·zhenglei!    Email:420498246@qq.com
 * create  2021-10-15 10:13
 */


//1.创建一个继承于Thread类的子类
class  MyThread extends  Thread{
    //2.重写Thread类的run()方法
    @Override
    public void run() {
        for (int i = 0; i <=100 ; i++) {
            if(i % 2 ==0){
                System.out.println(Thread.currentThread().getName()+"："+i);

            }
        }
    }
}


public class ThreadTest {
    public static void main(String[] args) {
        //3.创建Thread类的子类对象
        MyThread t1 = new MyThread();

        //4.通过此对象调用start():①启动当前线程 ②调用当前线程的run（）
        t1.start();   //Thread-0
        //问题一:我们不能通过直接调用run()的方式启动线程
//        t1.run();  //不是线程  只是 调用了方法

        //问题二:再启动线程,遍历100以内的偶数,不可以还让已经start()的线程去执行.会报
        //IllegalThreadStateException异常
        //t1.start();   //不可以

        //需要重新创建一个线程的对象
        MyThread t2 = new MyThread();
        t2.start();   //Thread-1



        //如下操作仍然在main线程中执行的
        for (int i = 0; i <=100 ; i++) {
            if(i % 2 != 0){

                System.out.println(Thread.currentThread().getName()+"："+i+"********");
            }
        }


    }


}
